<template>
    <div style="width: 100%">
        <div id="deawer">
            <v-tableTitle :btnConfig="btnConfig" @cancel="cancel" @save="save"></v-tableTitle>
            <div class="detailBox">
                <v-detail ref="detail"></v-detail>
            </div>
            <div class="detailListBox" v-if="!newFlag">
                <v-detailList ref="detailList"></v-detailList>
            </div>
        </div>
    </div>

</template>

<script>
    import baseMixin from "@/mixins/BaseMixin";
    import skipMixin from "@/mixins/SkipMixin";
    import config from "../Config"
    import tableTitle from "commons/TableTitle";
    import detail from "../details/Detail"
    import detailList from "../detailsList/DetailList"
    import bus from "../../../../../bus/bus";

    export default {
        name: "",
        mixins: [baseMixin, skipMixin, config],
        data() {
            return {
                newFlag: false,
                btnConfig: [
                    {label: this.$t('common.save'), certigier: this.saveStatus, invalid: "save"},
                    {label: this.$t('common.return'), invalid: "cancel"},
                ],
            };
        },

        created() {
        },
        methods: {
            //保存按钮
            async save() {
                let flag = this.$refs.detail.$children[0].$refs.input.submitForm("from");
                if (!flag) {
                    return;
                }
                let data = {};
                let detail = this.$refs.detail.detailData;
                if (this.newFlag) {
                    data = {
                        ...detail,
                    }
                } else {
                    let detailList = this.$refs.detailList.detailData;
                    if (this.$refs.detailList.detailsFlag) {
                        let type = this.$refs.detailList.type;
                        if (type == "Department_list") {
                            data = {
                                ...detail,
                                departmentlist: [
                                    {
                                        ...detailList
                                    }
                                ]
                            }
                        } else if (type == "Interface_list") {
                            data = {
                                ...detail,
                                interfacelist: [
                                    {
                                        ...detailList
                                    }
                                ]
                            }
                        }
                    } else {
                        data = {
                            ...detail,
                        }
                    }
                }
                try {
                    let res = await this.$api.post(`/saveCorporation/${this.$store.state.wms}`, data);
                    
                        this.$message.success(res.returnMgr);
                        if (this.newFlag) {
                            this.cancel();
                        } else if (this.$refs.detailList.detailsFlag) {
                            this.$refs.detailList.detailNav = '1';
                        } else {
                            this.cancel();
                        }
                    
                } catch (e) {
                    this.$message.error(e)
                }
            },
            //弹框取消
            cancel() {
                this.$router.push({name: "corporation"});
            },
        },
        mounted() {
            if (Object.keys(this.$store.state.skip).length !== 0) {
                let data = this.$store.state.skip;
                this.newFlag = data.newFlag;
            } else {
                this.newFlag = this.$store.state.newFlag;
            }

        },
        watch: {},
        components: {
            "v-tableTitle": tableTitle,
            "v-detail": detail,
            "v-detailList": detailList,
        }
    }
</script>

<style scoped>

</style>
